133 research outputs found
An in-between "implicit" and "explicit" complexity: Automata
Implicit Computational Complexity makes two aspects implicit, by manipulating
programming languages rather than models of com-putation, and by internalizing
the bounds rather than using external measure. We survey how automata theory
contributed to complexity with a machine-dependant with implicit bounds model
Reversible Barbed Congruence on Configuration Structures
A standard contextual equivalence for process algebras is strong barbed
congruence. Configuration structures are a denotational semantics for processes
in which one can define equivalences that are more discriminating, i.e. that
distinguish the denotation of terms equated by barbed congruence. Hereditary
history preserving bisimulation (HHPB) is such a relation. We define a strong
back and forth barbed congruence using a reversible process algebra and show
that the relation induced by the back and forth congruence is equivalent to
HHPB, providing a contextual characterization of HHPB.Comment: In Proceedings ICE 2015, arXiv:1508.0459
Categories for Me, and You?
A non-self-contained gathering of notes on category theory, including the definition of locally cartesian closed category, of the cartesian structure in slice categories, or of the âpseudo-cartesian structureâ on EilenbergâMoore categories. References and proofs are provided, sometimes, to my knowledge, for the first time
Memoization for Unary Logic Programming: Characterizing PTIME
We give a characterization of deterministic polynomial time computation based
on an algebraic structure called the resolution semiring, whose elements can be
understood as logic programs or sets of rewriting rules over first-order terms.
More precisely, we study the restriction of this framework to terms (and logic
programs, rewriting rules) using only unary symbols. We prove it is complete
for polynomial time computation, using an encoding of pushdown automata. We
then introduce an algebraic counterpart of the memoization technique in order
to show its PTIME soundness. We finally relate our approach and complexity
results to complexity of logic programming. As an application of our
techniques, we show a PTIME-completeness result for a class of logic
programming queries which use only unary function symbols.Comment: Soumis {\`a} LICS 201
Characterizing co-NL by a group action
International audienceIn a recent paper, Girard proposes to use his recent construction of a geometry of interaction in the hyperfinite factor in an innovative way to characterize complexity classes. We begin by giving a detailed explanation of both the choices and the motivations of Girard's definitions. We then provide a complete proof that the complexity class co-NL can be characterized using this new approach. We introduce as a technical tool the non-deterministic pointer machine, a concrete model to computes algorithms
Unification and Logarithmic Space
We present an algebraic characterization of the complexity classes Logspace
and Nlogspace, using an algebra with a composition law based on unification.
This new bridge between unification and complexity classes is rooted in proof
theory and more specifically linear logic and geometry of interaction. We show
how to build a model of computation in the unification algebra and then, by
means of a syntactic representation of finite permutations in the algebra, we
prove that whether an observation (the algebraic counterpart of a program)
accepts a word can be decided within logarithmic space. Finally, we show that
the construction naturally corresponds to pointer machines, a convenient way of
understanding logarithmic space computation.Comment: arXiv admin note: text overlap with arXiv:1402.432
Processes, Systems \& Tests: Defining Contextual Equivalences
In this position paper, we would like to offer and defend a new template to
study equivalences between programs -- in the particular framework of process
algebras for concurrent computation.We believe that our layered model of
development will clarify the distinction that is too often left implicit
between the tasks and duties of the programmer and of the tester. It will also
enlighten pre-existing issues that have been running across process algebras as
diverse as the calculus of communicating systems, the -calculus -- also
in its distributed version -- or mobile ambients.Our distinction starts by
subdividing the notion of process itself in three conceptually separated
entities, that we call \emph{Processes}, \emph{Systems} and \emph{Tests}.While
the role of what can be observed and the subtleties in the definitions of
congruences have been intensively studied, the fact that \emph{not every
process can be tested}, and that \emph{the tester should have access to a
different set of tools than the programmer} is curiously left out, or at least
not often formally discussed.We argue that this blind spot comes from the
under-specification of contexts -- environments in which comparisons takes
place -- that play multiple distinct roles but supposedly always \enquote{stay
the same}.We illustrate our statement with a simple Java example, the
\enquote{usual} concurrent languages, but also back it up with
-calculus and existing implementations of concurrent languages as
well
- âŠ